// invertido.cpp : implementation file
//

#include "stdafx.h"
#include "isismarc.h"
#include "invertido.h"
#include "global.h"
#include <yaz/marcdisp.h>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// Cinvertido dialog


Cinvertido::Cinvertido(CWnd* pParent /*=NULL*/)
	: CDialog(Cinvertido::IDD, pParent)
{
	//{{AFX_DATA_INIT(Cinvertido)
	//}}AFX_DATA_INIT
}


void Cinvertido::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(Cinvertido)
	DDX_Control(pDX, IDC_PROGRESSINV, m_Progreso);
	DDX_Control(pDX, IDC_hasta, m_hasta);
	DDX_Control(pDX, IDC_desde, m_desde);
	DDX_Control(pDX, IDOK, m_invertido);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(Cinvertido, CDialog)
	//{{AFX_MSG_MAP(Cinvertido)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// Cinvertido message handlers

void Cinvertido::AsignaView(CView * vista)
{
	this->vistaduenia=(CIsismarcView*) vista;

	//CIsismarcApp* App = (CIsismarcApp*)AfxGetApp();
	//App->CerrarBusqueda();
 
}
//BOOL Cinvertido::OnInitDialog() 
//{
//	CDialog::OnInitDialog();

//	SetWindowText(vistaduenia->base_activa);
//	return TRUE;
//}


BOOL Cinvertido::OnInitDialog() 
{

	CDialog::OnInitDialog();

    m_invertido.SetWindowText(tMensaje[52][9]);
   	return TRUE;

}


	

void Cinvertido::OnOK() 
{
	// Relaciona con la base activa
    
	
	mibase.IsisIniciarRegistro(vistaduenia->cip_dbisis+vistaduenia->base_activa);

    long cantreg=mibase.IsisCantRegistros();
	long i;
    int counter=0;
    int countergen=0;
	
	


	CString cadena;
	// Obtengo los rango desde mi dialogo

	m_desde.GetWindowText(cadena);
	long desde = atol(cadena);

	m_hasta.GetWindowText(cadena);
	long hasta = atol(cadena);
    if (hasta>cantreg)
		hasta=cantreg;
   

	//if ((desde>cantreg || hasta>cantreg) || (desde>hasta) || (desde<=0) || (hasta <=0))
	//{
//		AfxMessageBox(tMensaje[51][9]);
//		mibase.IsisFin();
//		return;
//	}
 //mibase.IsisAbrirInvertido(vistaduenia->cip_dbisis+vistaduenia->base_activa,"1 0 v9010");

	 //Abre y actualiza invertido
	mibase.IsisAbrirInvertido(vistaduenia->cip_dbisis+vistaduenia->base_activa+".fst",vistaduenia->cip_dbisis+vistaduenia->base_activa);

   // m_UltimaFecha.GetWindowText(fecha);


   for(i=desde; i<=hasta; i++)
   {
		mibase.IsisUpdInvertido(i,i);

//Barra de Progreso
	for (long actual=desde;actual<=hasta;actual++)
	{
		long r = mibase.IsisRegistroLight(actual,FALSE);

		
		if (r!=ERR_RECLOGIDEL)
		{
			r = IsisRecFieldUpdate(mibase.ms,0,"s");
		}
		else
			{
		
				counter++;
			}
			
		}

		int pos = int((100*++countergen)/hasta);
		m_Progreso.SetPos(pos);		
	}


//Idioma

      
  
	CDialog::OnOK();
}

